]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
status/network: Hide sections if networking is disabled
authorFlorian Müllner <fmuellner@gnome.org>
Sat, 6 Aug 2022 23:58:02 +0000 (01:58 +0200)
committerMarge Bot <marge-bot@gnome.org>
Wed, 10 Aug 2022 16:37:15 +0000 (16:37 +0000)
When moving to quick settings, we will no longer have a single
parent we can hide instead.

This is only really needed for VPN - devices go away when networking
is disabled, connections (as in: configuration) do not - but it's
simpler to just handle this in the base class than adding a
_shouldBeVisible() method the VPN section can override.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2408>

js/ui/status/network.js

index 9e2ef3a8b83feaff8b0ee588642bba00f63c3070..14df7978bce8f1f2779ef73ee01de01d345f311c 100644 (file)
@@ -1342,6 +1342,9 @@ const NMSection = GObject.registerClass({
 
         this._client?.disconnectObject(this);
         this._client = client;
+        this._client?.connectObject(
+            'notify::networking-enabled', () => this._sync(),
+            this);
 
         this._items.forEach(item => item.destroy());
         this._items.clear();
@@ -1461,7 +1464,8 @@ const NMSection = GObject.registerClass({
     }
 
     _sync() {
-        this.visible = this._items.size > 0;
+        this.visible =
+            this._client?.networking_enabled && this._items.size > 0;
         this._updateItemsVisibility();
         this._updateChecked();
         this._itemBinding.source = this._getPrimaryItem();
@@ -1875,9 +1879,6 @@ class Indicator extends PanelMenu.SystemIndicator {
         this._client.bind_property('nm-running',
             this, 'visible',
             GObject.BindingFlags.SYNC_CREATE);
-        this._client.bind_property('networking-enabled',
-            this.menu.actor, 'visible',
-            GObject.BindingFlags.SYNC_CREATE);
 
         this._client.connectObject(
             'notify::primary-connection', () => this._syncMainConnection(),